1. Field of the Invention
The present invention relates to a method and system for avoiding deadlock in compressed memory computing. More particularly, the present invention relates to a computer compressed memory system and method for storing and retrieving data in a processing system. The method and system of the present invention insures quality of service in memory systems in the presence of critical conditions, including power, thermal, compression induced memory pressure and real-time response.
2. Description of the Related Art
Compressed data memory systems used in computing environments have data stored either as compressed data or uncompressed data in a main memory, and generally as uncompressed data in at least one level of cache or a partition of the memory. Data is decompressed and compressed on demand, responsive to memory read and write access requests. The apparent size of real memory known to the operating system is generally larger than the amount of memory physically present in the system. The amount of the physical memory that is actually used by the computing environment is variable and depends on the effective level of data compression.
A condition known as “memory pressure” in systems of this type occurs when the runtime computing demands more memory than is physically available, generally because the data compression level has fallen below expectations and memory occupancy is high. The operating system software generally manages the dynamics of memory utility. However, if there is a rapid change in the overall level of compression, the condition may arise where the modified data in cache(s) cannot be written back into the memory given a cache fault. This is because changes in the data have affected the compression ratio, and data that once fit into the memory no longer does. The result is a processor deadlock.
Conventional systems and methods have addressed this issue with software to mitigate the condition, or eliminate the condition with extensive operating system software re-design. The conventional approaches can be effective, however, they require substantial support in the operating system. Thus, what is needed is a hardware solution that is independent of extensive or special operating system software to avoid deadlock conditions and insuring system quality of service.